using MyHomeworkWebAPi.Models.ef;
using MyHomeworkWebAPi.Models.Request;
using MyHomeworkWebAPi.Models.response;

namespace MyHomeworkWebAPi.Services
{
    /// <summary>
    /// 互动服务接口
    /// </summary>
    public interface IInteractionServices
    {
        /// <summary>
        /// 获取所有互动记录
        /// </summary>
        Task<List<Interaction>> GetAllAsync();

        /// <summary>
        /// 根据ID获取互动记录
        /// </summary>
        Task<Interaction?> GetByIdAsync(Guid interactionId);

        /// <summary>
        /// 创建互动记录
        /// </summary>
        Task<Interaction> CreateAsync(InteractionCreateRequest request);

        /// <summary>
        /// 删除互动记录
        /// </summary>
        Task<bool> DeleteAsync(Guid interactionId);

        /// <summary>
        /// 获取用户的互动记录列表
        /// </summary>
        Task<List<Interaction>> GetByUserIdAsync(Guid userId);

        /// <summary>
        /// 获取商品的互动记录列表
        /// </summary>
        Task<List<Interaction>> GetByProductIdAsync(Guid productId);

        /// <summary>
        /// 检查用户是否已收藏商品
        /// </summary>
        Task<bool> IsProductFavoritedAsync(Guid userId, Guid productId);

        /// <summary>
        /// 获取互动统计数据
        /// </summary>
        Task<InteractionStatistics> GetStatisticsAsync();
    }
} 